﻿#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

// 顺序表存储的类型重命名，方便修改
typedef int Type;

//动态顺序表结构体
typedef struct SeqList
{
	Type* arr;//类型指针，动态开辟内存
	int size; // 记录有效个数
	int capacity;// 记录空间大小（单位是指定类型大小）
}SL;

//顺序表的初始化
void SLInit(SL* ps);
//顺序表的销毁
void SLDestroy(SL* ps);

//顺序表的头部插入和删除
void SLPushHead(SL* ps, Type x);
void SLPopHead(SL* ps);

//顺序表的尾部插入和删除
void SLPushEnd(SL* ps, Type x);
void SLPopEnd(SL* ps);

//顺序表的指定位置插入和删除
void SLInsert(SL* ps, int pos, Type x);
void SLErase(SL* ps, int pos);

//顺序表的指定位置的修改
void SLAlter(SL* ps, int pos, Type x);

//顺序表查找数据
int SLFind(SL* ps, Type x);

//顺序表的打印（int类型）便于观察
void SLprint(SL* ps);
